﻿Option Explicit On
Option Strict On

Imports System
Imports System.ServiceModel

Imports ACOMDirector
Imports ACOMDirector.Framework.Hardware

Namespace Framework.Hardware.Remoting

    ''' <summary>
    ''' Interface defining the WCF callback contract for the remotable state manager
    ''' </summary>
    ''' <remarks></remarks>
    Public Interface IStateManagerCallbacks

        <OperationContract(IsOneway:=True)> _
        Sub StateChangedCallback()

        <OperationContract(IsOneway:=True)> _
        Sub ForwardPowerLedChangedCallback(e As PowerLedEventArgs)

        <OperationContract(IsOneway:=True)> _
        Sub ReflectedPowerLedChangedCallback(e As PowerLedEventArgs)

        <OperationContract(AsyncPattern:=True)> _
        Function BeginOnForwardPowerLedChanged(e As PowerLedEventArgs, callback As AsyncCallback, asyncState As Object) As IAsyncResult
        Sub EndOnForwardPowerLedChanged(result As IAsyncResult)

        <OperationContract(AsyncPattern:=True)> _
        Function BeginOnReflectedPowerLedChanged(e As PowerLedEventArgs, callback As AsyncCallback, asyncState As Object) As IAsyncResult
        Sub EndOnReflectedPowerLedChanged(result As IAsyncResult)

        <OperationContract(AsyncPattern:=True)> _
        Function BeginOnStateChanged(callback As AsyncCallback, asyncState As Object) As IAsyncResult
        Sub EndOnStateChanged(result As IAsyncResult)

    End Interface

End Namespace